home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri Kaikille K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Objrepos / Win2KApp / W2kMain.pas < prev    next >
Pascal/Delphi Source File  |  2001-05-22  |  5KB  |  197 lines

  1. unit W2kMain;
  2.  
  3. interface
  4.  
  5. uses Windows, Classes, Graphics, Forms, Controls, Menus,
  6.   Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, ImgList, StdActns,
  7.   ActnList, ToolWin;
  8.  
  9. type
  10.   TWin2kAppForm = class(TForm)
  11.     OpenDialog: TOpenDialog;
  12.     SaveDialog: TSaveDialog;
  13.     ActionList1: TActionList;
  14.     FileNew1: TAction;
  15.     FileOpen1: TAction;
  16.     FileSave1: TAction;
  17.     FileSaveAs1: TAction;
  18.     FileSend1: TAction;
  19.     FileExit1: TAction;
  20.     EditCut1: TEditCut;
  21.     EditCopy1: TEditCopy;
  22.     EditPaste1: TEditPaste;
  23.     HelpAbout1: TAction;
  24.     StatusBar: TStatusBar;
  25.     ImageList1: TImageList;
  26.     RichEdit1: TRichEdit;
  27.     MainMenu1: TMainMenu;
  28.     File1: TMenuItem;
  29.     FileNewItem: TMenuItem;
  30.     FileOpenItem: TMenuItem;
  31.     FileSaveItem: TMenuItem;
  32.     FileSaveAsItem: TMenuItem;
  33.     N1: TMenuItem;
  34.     FileSendItem: TMenuItem;
  35.     N2: TMenuItem;
  36.     FileExitItem: TMenuItem;
  37.     Edit1: TMenuItem;
  38.     CutItem: TMenuItem;
  39.     CopyItem: TMenuItem;
  40.     PasteItem: TMenuItem;
  41.     Help1: TMenuItem;
  42.     HelpAboutItem: TMenuItem;
  43.     SaveDialog1: TSaveDialog;
  44.     ToolBar1: TToolBar;
  45.     ToolButton1: TToolButton;
  46.     ToolButton2: TToolButton;
  47.     ToolButton3: TToolButton;
  48.     ToolButton4: TToolButton;
  49.     ToolButton5: TToolButton;
  50.     ToolButton6: TToolButton;
  51.     ToolButton7: TToolButton;
  52.     ToolButton8: TToolButton;
  53.     ToolButton9: TToolButton;
  54.     PopupMenu1: TPopupMenu;
  55.     Cut1: TMenuItem;
  56.     Copy1: TMenuItem;
  57.     Paste1: TMenuItem;
  58.     procedure FileNew1Execute(Sender: TObject);
  59.     procedure FileOpen1Execute(Sender: TObject);
  60.     procedure FileSave1Execute(Sender: TObject);
  61.     procedure FileSaveAs1Execute(Sender: TObject);
  62.     procedure FileSend1Execute(Sender: TObject);
  63.     procedure FileExit1Execute(Sender: TObject);
  64.     procedure HelpAbout1Execute(Sender: TObject);
  65.     procedure FormCreate(Sender: TObject);
  66.   private
  67.     FFileName: String;
  68.   public
  69.     { Public declarations }
  70.   end;
  71.  
  72. var
  73.   Win2kAppForm: TWin2kAppForm;
  74.  
  75. implementation
  76.  
  77. uses
  78.   SysUtils, Mapi, about, SHFolder;
  79.  
  80. {$R *.dfm}
  81.  
  82. resourcestring
  83.   SUntitled  = 'Untitled';
  84.   SOverwrite = 'OK to overwrite %s';
  85.   SSendError = 'Error sending mail';
  86.  
  87. function DefaultSaveLocation: string;
  88. var
  89.   P: PChar;
  90. begin
  91.   {
  92.     returns the location of 'My Documents' if it exists, otherwise it returns
  93.     the current directory.
  94.   }
  95.   P := nil;
  96.   try
  97.     P := AllocMem(MAX_PATH);
  98.     if SHGetFolderPath(0, CSIDL_PERSONAL, 0, 0, P) = S_OK then
  99.       Result := P
  100.     else
  101.       Result := GetCurrentDir;
  102.   finally
  103.     FreeMem(P);
  104.   end;
  105. end;
  106.  
  107. procedure TWin2kAppForm.FileNew1Execute(Sender: TObject);
  108. begin
  109.   SaveDialog.InitialDir := DefaultSaveLocation;
  110.   FFileName := SUntitled;
  111.   RichEdit1.Lines.Clear;
  112.   RichEdit1.Modified := False;
  113. end;
  114.  
  115. procedure TWin2kAppForm.FileOpen1Execute(Sender: TObject);
  116. begin
  117.   if OpenDialog.Execute then
  118.   begin
  119.     RichEdit1.Lines.LoadFromFile(OpenDialog.FileName);
  120.     FFileName := OpenDialog.FileName;
  121.     RichEdit1.SetFocus;
  122.     RichEdit1.Modified := False;
  123.     RichEdit1.ReadOnly := ofReadOnly in OpenDialog.Options;
  124.   end;
  125. end;
  126.  
  127. procedure TWin2kAppForm.FileSave1Execute(Sender: TObject);
  128. begin
  129.   if (FFileName = SUntitled) or (FFileName = '') then
  130.     FileSaveAs1Execute(Sender)
  131.   else
  132.   begin
  133.     RichEdit1.Lines.SaveToFile(FFileName);
  134.     RichEdit1.Modified := False;
  135.   end;
  136. end;
  137.  
  138. procedure TWin2kAppForm.FileSaveAs1Execute(Sender: TObject);
  139. begin
  140.   with SaveDialog do
  141.   begin
  142.     FileName := FFileName;
  143.     if Execute then
  144.     begin
  145.       if FileExists(FileName) then
  146.         if MessageDlg(Format(SOverwrite, [FileName]),
  147.           mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
  148.       RichEdit1.Lines.SaveToFile(FileName);
  149.       FFileName := FileName;
  150.       RichEdit1.Modified := False;
  151.     end;
  152.   end;
  153. end;
  154.  
  155. procedure TWin2kAppForm.FileSend1Execute(Sender: TObject);
  156. var
  157.   MapiMessage: TMapiMessage;
  158.   MError: Cardinal;
  159. begin
  160.   with MapiMessage do
  161.   begin
  162.     ulReserved := 0;
  163.     lpszSubject := nil;
  164.     lpszNoteText := PChar(RichEdit1.Lines.Text);
  165.     lpszMessageType := nil; 
  166.     lpszDateReceived := nil; 
  167.     lpszConversationID := nil; 
  168.     flFlags := 0;
  169.     lpOriginator := nil; 
  170.     nRecipCount := 0;
  171.     lpRecips := nil;
  172.     nFileCount := 0;
  173.     lpFiles := nil; 
  174.   end;
  175.  
  176.   MError := MapiSendMail(0, Application.Handle, MapiMessage,         
  177.     MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
  178.   if MError <> 0 then MessageDlg(SSendError, mtError, [mbOK], 0);
  179. end;
  180.  
  181. procedure TWin2kAppForm.FileExit1Execute(Sender: TObject);
  182. begin
  183.   Close;
  184. end;
  185.  
  186. procedure TWin2kAppForm.HelpAbout1Execute(Sender: TObject);
  187. begin
  188.   AboutBox.ShowModal;
  189. end;
  190.  
  191. procedure TWin2kAppForm.FormCreate(Sender: TObject);
  192. begin
  193.   FileNew1.Execute; { sets the default file name and clears the RichEdit Control }
  194. end;
  195.  
  196. end.
  197.